var { ReturnModel } = require('../libs/resmodel');
var { matchsetSave, matchsetQueryOne,matchsetUpdate,matchsetList } = require('../services/matchset');
var { init, format } = require('../models/matchset');

/**
* 保存我的匹配规则
* @api {post} /matchset/save 保存我的匹配规则
* @apiDescription 接口根据pcode判断，有数据覆盖所传字段信息，无数据新增
* @apiName save
* @apiParam (参数) {String} pcode 关联员工code
* @apiParam (参数) {String} age 年龄要求 保存年龄范围，查询时根据“-”切割
* @apiParam (参数) {String} height 身高要求 身高范围，查询时根据“-”切割
* @apiParam (参数) {String} city 希望他的城市
* @apiParam (参数) {String} education 学历 高中以上（1）、中专以上（2）、大专以上（3）、本科以上（4）、硕士以上（5）、不限学历（0）
* @apiParam (参数) {String} education_code 学历编码 高中以上（1）、中专以上（2）、大专以上（3）、本科以上（4）、硕士以上（5）、不限学历（0）
* @apiParam (参数) {String} marital_status 婚姻状态
* @apiParam (参数) {String} grender 性别： 男、女、''（只有推荐人才有此选项，其他用户此值为空）
* @apiParam (参数) {String} preference 偏好 0：不限 1：军人优先 2：同乡优先
* @apiSampleRequest /matchset/save
* @apiGroup matchset-匹配规则
* @apiVersion 1.0.0
* @apiParamExample {json} Request-Example:
*     {
*       "pcode": "290464549598",
*       "age": 25-30,
*       "height": "175-185",
*       "city": "深圳",
*       "education": "硕士",
*       "education_code": 5,
*       "marital_status": "未婚",
*       "grender": "",
*       "preference": 1
*     }
* @apiSuccessExample {json} Success-Response:
*   HTTP/1.1 200 OK
*   {
*      "msg": "保存成功",
*      "code": 0
*   }
*/
async function matchsetsave(req, res) {
    let result = await matchsetSave(req.body);
    res.json(new ReturnModel(result));
}
/**
* 获取我的匹配规则
* @api {post} /matchset/queryinfo 获取我的匹配规则
* @apiDescription 根据用户pcode获取匹配规则
* @apiName queryinfo
* @apiParam (参数) {String} pcode 关联员工code
* @apiSampleRequest /matchset/queryinfo
* @apiGroup matchset-匹配规则
* @apiVersion 1.0.0
* @apiParamExample {json} Request-Example:
*     {
*       "pcode": "290464549598",
*     }
* @apiSuccessExample {json} Success-Response:
*   HTTP/1.1 200 OK
*   {
*      "data": {
*       "pcode": "290464549598",
*       "age": "25-30",
*       "height": "175-185",
*       "city": "同城",
*       "education": "硕士",
*       "education_code": 5,
*       "marital_status": "未婚",
*       "grender": "",
*       "preference": 1,
*       "isinviter": 1// 是否推荐人
*       },
*      "msg": "获取成功",
*      "code": 0
*   }
*/
async function queryinfo(req, res) {
    let result = await matchsetQueryOne(req.body.pcode);
    res.json(new ReturnModel(result));
}
/**
* 保存匹配设置-后台
* @api {post} /matchset/update 保存匹配设置-后台
* @apiDescription 保存匹配设置-后台
* @apiName update
* @apiParam (参数) {String} id 记录id
* @apiParam (参数) {String} pcode 关联员工code
* @apiParam (参数) {String} city 希望他的城市
* @apiParam (参数) {String} education 学历 高中以上（1）、中专以上（2）、大专以上（3）、本科以上（4）、硕士以上（5）、不限学历（0）
* @apiParam (参数) {String} education_code 学历编码 高中以上（1）、中专以上（2）、大专以上（3）、本科以上（4）、硕士以上（5）、不限学历（0）
* @apiParam (参数) {String} marital_status 婚姻状态
* @apiParam (参数) {String} grender 性别： 男、女、''（只有推荐人才有此选项，其他用户此值为空）
* @apiParam (参数) {String} preference 偏好 0：不限 1：军人优先 2：同乡优先
* @apiSampleRequest /matchset/update
* @apiGroup matchset-匹配规则
* @apiVersion 1.0.0
* @apiParamExample {json} Request-Example:
*     {
*       "id": 24,
*       "pcode": "290464549598",
*       "age": 25-30,
*       "height": "175-185",
*       "city": "深圳",
*       "education": "硕士",
*       "education_code": 5,
*       "marital_status": "未婚",
*       "grender": "",
*       "preference": 1
*     }
* @apiSuccessExample {json} Success-Response:
*   HTTP/1.1 200 OK
*   {
*      "msg": "保存成功",
*      "code": 0
*   }
*/
async function update(req, res) {
    let result = await matchsetUpdate(req.body);
    res.json(new ReturnModel(result));
}
/**
* 匹配设置列表-后台
* @api {post} /matchset/list 匹配设置列表-后台
* @apiDescription 匹配设置列表-后台
* @apiName list
* @apiParam (参数) {String} name 真实姓名
* @apiParam (参数) {Number} pagenum 查询第几页
* @apiParam (参数) {Number} pagesize 每页显示条数
* @apiSampleRequest /matchset/list
* @apiGroup matchset-匹配规则
* @apiVersion 1.0.0
* @apiParamExample {json} Request-Example:
*    {
*     "name": "张三",  // 真实姓名
*     "pagenum": 1,  // 查询第几页
*     "pagesize": 10,  // 每页显示条数
*    }
* @apiSuccessExample {json} Success-Response:
*   HTTP/1.1 200 OK
*   {
*      "data": {
*              "list": [
*     {
*       "id": 24,
*       "pcode": "290464549598",
*       "age": 25-30,
*       "height": "175-185",
*       "city": "深圳",
*       "education": "硕士",
*       "education_code": 5,
*       "marital_status": "未婚",
*       "grender": "",
*       "preference": 1
*     }]
*      "total": 200,//总条数
*      "pagecount": 20,//总页数
*      "msg": "获取成功",
*      "code": 0
*   }
*   }
*/
async function list(req, res) {
    let result = await matchsetList(req);
    res.json(new ReturnModel(result));
}

module.exports = function (app) {
    let base_url = '/api/matchset';

    app.post(base_url+'/save', matchsetsave);
    app.post(base_url+'/queryinfo', queryinfo);
    app.post(base_url+'/list', list);
    app.post(base_url+'/update', update);
}
